package com.tmxk.api.day04.gull;

import java.io.*;

/**
 * 文件复制
 *      先读取(输入) 再 输出
 */
public class FileCopy {
    public static void main(String[] args) {
        Reader reader = null;
        BufferedReader br = null;
        Writer out = null;
        BufferedWriter bw = null;
        try{
            // 目标源文件
            File fileSource = new File("D:\\tmxk20221201\\tmxk01\\fileInfoBuffered.txt");
            // 目标文件
            File fileTarget = new File("D:\\tmxk20221201\\tmxk01\\fileInfoBufferedCopy.txt");

            // 创建字符输入流对象,并指定文件源位置
            reader = new FileReader(fileSource);
            // 创建字符缓冲输入流对象
            br = new BufferedReader(reader);

            // 创建字符输出流对象,并指定 目标最终路径位置
            out = new FileWriter(fileTarget);
            // 创建字符缓冲输出流对象
            bw = new BufferedWriter(out);

            // 读取数据   一行一行读取
            String str = "";
            while((str = br.readLine()) != null){
               // System.out.println(str);
                bw.write(str);
                bw.newLine();
            }
            bw.flush();
        }catch (IOException e){
            e.printStackTrace();
        }finally {
            try{
                if(bw != null){
                    bw.close();
                }
                if(br != null){
                    br.close();
                }
                if(out != null){
                    out.close();
                }
                if(reader != null){
                    reader.close();
                }
            }catch (IOException e){
                e.printStackTrace();
            }
            System.out.println("file copy success!!!");
        }

    }
}
